package org.mybaits.chapter6.mapper;

import java.util.List;
import java.util.Map;

import org.mybaits.chapter6.entitys.User;

/**
 * 
 * <p>
 * Description : 基于mapper代理开发 UserMapper
 * </p>
 * <p>
 * Company : org.huangkai.com
 * </p>
 * 
 * @author huangkai
 * @date 2016年2月29日 下午11:11:13
 * @version 1.0
 */
public interface UserMapper {

	/**
	 * 根据id查询用户信息
	 * 
	 * @param id
	 * @return
	 * @throws Exception
	 */
	User getById(Long id) throws Exception;
	
	/**
	 * 用户名查询一个用户
	 * @param username
	 * @return
	 * @throws Exception
	 */
	User getUniqueByUsername(String username) throws Exception;

	/**
	 * 根据用户信息查询用户
	 * 
	 * @param map 用户的属性与属性值
	 * @return
	 * @throws Exception
	 */
	List<User> getUser(Map<String,Object> map) throws Exception;

	/**
	 * 保存一个用户
	 * 
	 * @param user
	 * @return 受影响的行数
	 * @throws Exception
	 */
	int insert(User user) throws Exception;

	/**
	 * 更新用户
	 * @param user
	 * @return
	 * @throws Exception
	 */
	int update(User user) throws Exception;

	/**
	 * 删除用户
	 * @param id
	 * @return
	 * @throws Exception
	 */
	int delete(Long id) throws Exception;

}
